package 数组;

/**
 * 找出数组中重复的数字。
 * 在一个长度为 n 的数组 nums 里的所有数字都在 0～n-1 的范围内。
 * 数组中某些数字是重复的，但不知道有几个数字重复了，也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
 * User: zhaixiaolong Date:2024/2/19 10:27 ProjectName: algorithm Version:
 */
public class 重复数字 {

    public static void main(String[] args) {
        int[] nums = {2, 3, 1, 0, 2, 5, 3};
    }

    public static int findRepeat(int[] nums){
        if (nums.length == 0) {
            return -1;
        }
        for (int i = 0; i < nums.length; i++) {
            while (nums[i] != i) {
                //判断位置是否被占
                int index = nums[i];
                if (nums[index] == nums[i]) {
                    return nums[i];
                }
                //交换位置
                int temp = nums[i];
                nums[i] = nums[index];
                nums[index] = temp;
            }
        }
        return -1;
    }
}
